1. Field of the Invention
The present invention relates to a method of rewriting a primary sector of a sector erasable semiconductor memory means and a device for executing the method.
2. Description of Related Art
Controllers are using non-volatile memory devices to store basic routines and application codes which are to be executed by this controller. A small fraction of the memory space in a primary sector commonly located at address 0x00 is reserved for a bootloader code. During a start up a controller seeks for this bootloader code containing all necessary instructions to set up the hardware of the controller, for example its interfaces, such that an application code may make use of them. Corruption or loss of the bootloader renders the whole controller dysfunctional. Then it is not possible to reset the controller into a default mode or to reprogram the bootloader without use of special equipment. Thus loss or corruption of the bootloader has to be prevented any time.
Standard non-volatile semiconductor memory means needs two steps in order to rewrite data. The writing step can only set a bit to one logic level or leave it unchanged. Therefore, it necessary to apply first an erasing step setting the memory to the second logic level. The writing step can be applied to a single bit, byte or word depending on the specification of the memory device. However, the erasing step is applied to a whole sector. Thus even if only a small fraction has to be changed within one sector all its content may be affected and presumably be lost by the erasing step. Therefore, in most systems writing routines have no access to the primary sector.
The memory space needed to store the bootloader is far smaller then a sector of a conventional non-volatile memory means. The unused space could be used by an application code. As it is necessary to have the possibility to update or improve the application code and rewriting of the primary sector is not possible due to loss or corruption of the bootloader with the methods of the state of the art the unused parts of the primary sector, e.g. parts of the primary sector not used for storing the bootloader, are intentionally left free.
Currently the bootloader code does not even fill half of the primary sector of standard memory devices thus lots of memory space is wasted. Other memory devices with smaller sector sizes disadvantagely need more logic devices and longer instruction codes to address the memory space.
Another possible method writes parts of an application code to the primary sector which is assumed not to need any update in future. However, it remains almost impossible to identify these parts of an application code.
It is an object of the present invention to provide a method which enables filling parts of the primary sector with useful data or code being changeable at any time and meanwhile ensuring that a bootloader code within the primary sector remains unchanged.